package com.xx.ch08.demo.demo01;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

import javax.annotation.Resource;

/**
 * @author 许欣
 * 时间：2022/4/20 8:47
 * 描述：
 */
public class People {
    /**
     * 小结：
     * @Resource和@Autowired的区别
     * 都是用来自动装配的，都抗压放在属性字段上
     * @Autowired 通过byname的方式实现，必须要求这个对象存在（常用）
     * @Resource默认通过Byname的方式实现，如果找不到名字，则通过ByType实现，
     * 如果两个都找不的情况下就报错！（常用）
     * 执行顺序不同：
     * @Autowired 通过ByType的方式实现。
     * @Resource默认通过byName的方式实现
     */
    @Autowired
//    @Resource(name = "dog")
    private Cat cat;
    @Autowired
    @Qualifier(value = "dog1")
    private Dog dog;
    private String name;

    public Cat getCat() {
        return cat;
    }

    public void setCat(Cat cat) {
        this.cat = cat;
    }

    public Dog getDog() {
        return dog;
    }

    public void setDog(Dog dog) {
        this.dog = dog;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "People{" +
                "cat=" + cat +
                ", dog=" + dog +
                ", name='" + name + '\'' +
                '}';
    }
}
